Objetos flotantes
Objetos flotantes
Los objetos flotantes son aquellos que TeX puede mover en el documento final para conseguir el mejor aspecto posible. Son dos: figuras y cuadros (tablas).
No vamos a hablar aquí de como generar los gráficos si no de cómo se incluye un gráfico o un cuadro en un documento LaTeX.
Figuras y cuadros
Figuras
La forma de incluir un gráfico como objeto flotante es
\begin{figure}[opciones]
Gráfico\end{figure}
Opciones
- h (here) intenta colocar el gráfico en ese lugar en el texto.
- t (top) tiene preferencia la parte superior de la página.
- b (bottom) tiene preferencia la parte inferior de la página.
- p (paragraph)
El paquete float añade la opción H
para indicar aquí de forma forzosa.
Cuadros
La forma de incluir un cuadro como objeto flotante es
\begin{table}[opciones]
Cuadro\end{table}
El entorno table
tiene las mismas opciones que el entorno figure
.
Cómo escribir cuadros
Hay muchas formas de escribir cuadros o tablas en un fichero LaTeX. Existen numerosos paquetes que hacen esto más sencillo. Vamos a comentar algunos.
Tabular
El entorno tabular
es la forma más básica de incluir cuadros.
\begin{table}[htp] % coloca el cuadro aquí, arriba
\centering
\begin{tabular}{||c|l|r||}
\hline \hline Nombre & Apellidos & Nota \\
\hline Alonso & Machado & 7 \\
\hline Eduardo & Aranda & 8 \\
\hline José & García & 8 \\
\hline \hline
\end{tabular}
\caption{Lista de notas}
\end{table}
Como se ve en el ejemplo anterior, el aspecto de un cuadro es el siguiente
\begin{tabular}{col1,col2,col3}
& a12 & a13 \\
a11 & a22 & a23 \\
a21 \end{tabular}
donde col1, col2,… es un tipo de columna. Además de esto se pueden dibujar líneas horizontales (con ) o verticales (usando | como separador)
Tipos de columnas
Hay tres tipos básicos de columnas: alineada a izquierda, centrada o alineada a la derecha: se indican con las letras l
, c
y r
. Además, también tenemos el tipo de columna párrafo que se indica con la letra p seguida de la anchura del párrafo entre llaves.
Por ejemplo
\begin{center}
\begin{tabular}{|l|c|r|p{5cm}|}
\hline Nombre & Apellidos & Nota & Comentarios \\
\hline Manuel & López & 7 & Hoy hemos hablado de cuadros y tablas, los dos ejemplos de objetos flotantes\\
\hline Mike & García & 7.5 & Mañana hablaremos de la forma de organizar la bibliografía de un documento \\
\hline
\end{tabular}
\end{center}
El paquete booktabs
El paquete booktabs contiene algunas reglas generales que mejoran el aspecto de tablas o cuadros:
- es preferible alinear a la izquierda;
- no uses líneas verticales;
- evita las líneas dobles;
- coloca las unidades en la cabecera;
- no uses comillas para repetir el contenido.
Entre otras cosas el paquete booktabs incluye las órdenes toprule
, midrule
y bottomrule
que hacen las líneas horizontales de una tabla.
\begin{table}[htp]
\centering
\begin{tabular}{@{}lll@{}}
\toprule
& Apellidos & Nota \\
Nombre \midrule
& López & 7 \\
Antonio & Fuentes & 8 \\
John & Suárez & 8 \\
Mario \bottomrule
\end{tabular}
\caption{Lista de notas}
\end{table}
El paquete tabularx
Incluye el tipo de columna X, que se estira hasta ocupar el espacio indicado. En el ejemplo siguiente: una columna (la segunda), se estira hasta ocupar toda la línea.
\begin{tabularx}{\linewidth}{lX}
\toprule
& Definición \\
Unidad \midrule
& Su correspondiente definición \\
Newton & Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua \\
Otra \bottomrule
\end{tabularx}
\end{center}
Si ponemos más de una columna de tipo X, el espacio se distribuye entre todas ellas.
\begin{tabularx}{\linewidth}{lXX}
\toprule
& Definición & Otra cosa \\
Unidad \midrule
& Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua & Un poco más de texto para ocupar otro poco más \\
Newton & Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua & Un poco más de texto para ocupar otro poco más \\
Otra & Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua & Un poco más de texto para ocupar otro poco más \\
Newton & Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua & Un poco más de texto para ocupar otro poco más \\
Otra \bottomrule
\end{tabularx}
El paquete rotating
El paquete rotating incluye varias órdenes para girar cuadros.
Se puede usar sideways
alrededor de un entorno de entorno tabular para girar un cuadro pequeño.
\begin{center}
\begin{sideways}
\begin{tabular}{llr}
\toprule
\multicolumn{2}{c}{\textbf{Alumno}} \\
\cmidrule(r){1-2}
& Apellidos & Nota \\
Nombre \midrule
& López & 7 \\
Antonio & Fuentes & 8 \\
John & Suárez & 8 \\
Mario \bottomrule
\end{tabular}
\end{sideways}
\end{center}
También se puede girar un cuadro que ocupe una página completa: en lugar de un entorno table
, usamos sidewaystable
.
\begin{sidewaystable}
\centering
\begin{tabular}{@{}lllllllll@{}}
\toprule
& Apellidos & Nota & Nombre & Apellidos & Nota & Nombre & Apellidos & Nota \\
Nombre \midrule Manuel & López & 7 & Manuel & López & 7 & Manuel & López & 7 \\
& Smith & 8 & John & Smith & 8 & John & Smith & 8 \\
John & Aranda & 8 & Mike & Aranda & 8 & Mike & Aranda & 8 \\
Mike & López & 7 & Manuel & López & 7 & Manuel & López & 7 \\
Manuel & Smith & 8 & John & Smith & 8 & John & Smith & 8 \\
John & Aranda & 8 & Mike & Aranda & 8 & Mike & Aranda & 8 \\
Mike & López & 7 & Manuel & López & 7 & Manuel & López & 7 \\
Manuel & Smith & 8 & John & Smith & 8 & John & Smith & 8 \\
John & Aranda & 8 & Mike & Aranda & 8 & Mike & Aranda & 8 \\
Mike \bottomrule
\end{tabular}
\caption{lista de notas}
\end{sidewaystable}
Uso de color (versión básica)
Hay que cargar el paquete color con la opción table
. La orden rowcolors
tiene tres parámetros: la fila en la que empieza a funcionar, color inicial y color alternativo. Por ejemplo, empezamos en la tercera fila con un 5% de negro y alternamos con blanco.
\begin{table}[htbp]
\rowcolors{3}{black!5}{white}
\centering
\begin{tabular}{llr}
\toprule
& Apellidos & Nota \\
Nombre \midrule
& Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert \end{tabular}
\caption{Una prueba}
\end{table}
Cuadros de más de una página
Cargamos los paquetes longtable
y tabu
. En el código siguiente se puede ver la estructura de un cuadro que ocupa más de una página. Al principio se escriben las cabeceras de la primera página, de las siguientes y lo mismo con los finales de los cuadros.
\begin{center}
\begin{longtabu} to 0.7\linewidth{lll} % la tabla va a ocupar el 70% de la línea
% empieza la primera cabecera
\toprule
\textbf{Nombre} & \textbf{Apellidos} & \textbf{Nota} \\
\midrule
\endfirsthead
% ahora la cabecera para el resto de páginas
\toprule
\textbf{Nombre (seguimos)} & \textbf{Apellidos} & \textbf{Nota} \\
\midrule
\endhead
% ahora el pie de tabla para cada página
\midrule
\endfoot
% y el pie de página para la última página
\bottomrule
\endlastfoot
% ahora ya escribimos los datos de la tabla
& Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert & Smith & 7.5 \\
John & Dodds & 7.5 \\
Mike & Isaac & 8 \\
Robert \end{longtabu}
\end{center}
El paquete tabularray
Este paquete es una de las incorporaciones más recientes al mundo de los cuadros en LaTeX. En su versión más básica una tabla se construye con el entorno tblr
de forma análoga a un entorno tabular:
\begin{tblr}{lcr}
\\
Nombre & Apellidos & Nota
...\end{tblr}